What is @typescript-eslint/types?
The @typescript-eslint/types package is part of the TypeScript-ESLint project, which provides a TypeScript parser for ESLint and utilities for working with TypeScript and ESLint together. This specific package contains TypeScript definitions for ESLint-specific types, making it easier to work with ESLint configurations, rules, and plugins in a TypeScript environment. It is primarily used by developers who are creating custom ESLint rules or configurations and want to leverage TypeScript's type-checking capabilities for better development experience.
What are @typescript-eslint/types's main functionalities?
AST Node Types
Provides TypeScript interfaces for AST nodes generated by the parser. This is useful for writing type-safe code that inspects or manipulates the AST, such as custom ESLint rules.
import { TSESTree } from '@typescript-eslint/types';
function processNode(node: TSESTree.Node) {
if (node.type === 'Identifier') {
console.log('Found an identifier:', node.name);
}
}
Rule Definition Helpers
Includes types for defining ESLint rules in a TypeScript-friendly way, making it easier to create custom rules with type safety.
import { TSESLint } from '@typescript-eslint/types';
const myRule: TSESLint.RuleModule<'my-error', []> = {
meta: {
type: 'problem',
docs: {
description: 'My custom rule',
recommended: 'error'
}
},
create(context) {
return {
Identifier(node) {
context.report({
node,
messageId: 'my-error'
});
}
};
}
};
Other packages similar to @typescript-eslint/types
@typescript-eslint/experimental-utils
This package provides a set of utilities for working with TypeScript and ESLint, including ESLint rule helpers and AST utilities. It is similar to @typescript-eslint/types but offers a broader range of tools for rule development and AST manipulation.
eslint-plugin-typescript
An older package that aimed to add TypeScript support to ESLint before the official @typescript-eslint project was established. It provides some similar functionalities but is now deprecated in favor of the more comprehensive and up-to-date @typescript-eslint suite of packages.
@typescript-eslint/types
Types for the TypeScript-ESTree AST spec
This package exists to help us reduce cycles and provide lighter-weight packages at runtime.
β Internal Package
This is an internal package to the typescript-eslint monorepo.
You likely don't want to use it directly.
π See https://typescript-eslint.io for docs on typescript-eslint.
8.38.0 (2025-07-21)
π Features
- typescript-estree: forbid optional chain in
TemplateTaggedLiteral
(#11391)
π©Ή Fixes
- disallow extra properties in rule options (#11397)
- eslint-plugin: [consistent-generic-constructors] resolve conflict with
isolatedDeclarations
if enabled in constructor
option (#11351)
- typescript-eslint: infer tsconfigRootDir with v8 API (#11412)
- typescript-eslint: error on nested
extends
in tseslint.config()
(#11361)
- typescript-estree: ensure the token type of the property name is Identifier (#11329)
β€οΈ Thank You
- Andrew Kazakov @andreww2012
- Kirk Waiblinger @kirkwaiblinger
- MK @asdf93074
- tao
- Younsang Na @nayounsang
You can read about our versioning strategy and releases on our website.